NEP Model
NEP模型最初是在GPUMD软件包中实现的 (2022b NEP4 GPUMD)。GPUMD 中训练 NEP 采用了可分离自然演化策略(separable natural evolution strategy,SNES),由于不依赖梯度信息,实现简单。但是对于标准的监督学习任务,特别是深度学习,更适合采用基于梯度的优化算法。我们在 PWMLFF 2024.5
版本实现了 NEP 模型(NEP4,网络结构如图1所示),能够使用 PWMLFF 中基于梯度的LKF 或 ADAM 优化器做模型训练。
我们在多种体系中比较了LKF和SNES两种优化方法的训练效率,测试结果表明,LKF 优化器在对NEP模型的训练中展现了优越的训练精度和收敛速度 NEP模型的网络结构只有一个单隐藏层,具有非常快的推理速度,而引入LKF优化器则大幅提高了训练效率。用户可以在PWMLFF中以较低的训练代价获得优质的NEP并使用它进行高效的机器学习分子动力学模拟,这对于资源/预算有限的用户非常友好。
我们也实现了 NEP 模型的Lammps分子动力学接口,支持 CPU
或 GPU
设备,受益于NEP 简单的网络结构和化繁为简的feature设计,NEP 模型在 lammps 推理中具有非常快的速度。

NEP 网络结构,不同类型的元素具有独立但结构相同的子神经网络。此外,与文献中NEP4网络结构不同的是,对于每层的bias,所有的 子网络不共享最后一层bias
。此外,我们对于多体描述符采用了与两体描述符相同的 cutoff
。
NEP 命令列表
1.train 训练命令
,与 DP、NN、Linear 模型相同,详细使用参考 NEP 模型训练
PWMLFF train train.json
2.python 测试接口我们提供了infer
和 test
两种命令,使用方式与 DP inference 相同。
对于 infer
命令,指定 nep 力场文件路径即可,这里支持来自 GPUMD 的 nep.txt
文件、 PWMLFF nep_model.ckpt
力场文件,以及在 lammps 中使用的 nep_to_lmps.txt
格式文件。
例如
PWMLFF infer nep_model.ckpt atom.config pwmat/config
PWMLFF infer gpumd_nep.txt 0.lammpstrj lammps/dump Hf O
# Hf O 为 lammps/dump格式的结构中的元素名称,Hf为结构中1号元素类型,O为元素中2号元素类型
在test
命令的 test.json
中,同样支持上述力场格式。如果您测试的结构中原子数不超过万级,建议您使用 CPU 即可。对于 test
接口,我们使用了 cpu 多核并行加速。
PWMLFF test test.json
3.toneplmps
命令, 用于把 PWMLFF
训练的 nep_model.ckpt
文件转换为 nep_to_lmps.txt
文件,用于 lammps
模拟。
PWMLFF toneplmps nep_model.ckpt
4.togpumd
命令,用于把PWMLFF
训练的nep_model.ckpt
文件转换为 nep_to_gpumd.txt
文件,可用于 GPUMD
模拟。
nep_to_lmps.txt
相比于 GPUMD 的 nep_to_gpumd.txt
区别是额外存储了不同元素各自的 last bias,因此,因此多了 行值, 为元素类型,如果只有单元素,那它们完全相同。
由于GPUMD 不同元素的网络共享最后一个 bias, 因此需要根据模拟体系做转换。我们这里的转换思路如下公式所示。